package com.example.takeaway.service;

import com.example.takeaway.model.bo.DeliveryAddress;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.takeaway.model.dto.AddressDTO;
import com.example.takeaway.model.dto.AddressEditorDTO;
import com.example.takeaway.model.vo.AddressVO;

import java.util.List;

/**
 * <p>
 * 收货地址表 服务类
 * </p>
 *
 * @author 邢晨旭
 * @since 2023-10-12
 */
public interface DeliveryAddressService extends IService<DeliveryAddress> {

    /**
     * 添加配送地址
     * @param addressDTO 配送地址信息
     * @param userId 用户id
     */
    void addAddress(AddressDTO addressDTO, Long userId);

    /**
     * 更新配送地址信息
     * @param addressDTO 配送地址信息
     */
    void updateAddress(AddressEditorDTO addressDTO);

    /**
     * 删除配送地址
     * @param id 配送地址id
     */
    void deleteById(Long id);

    /**
     * 查询用户的配送地址列表
     * @param userId 用户id
     * @return 配送地址列表
     */
    List<AddressVO> queryListByUserId(Long userId);

    /**
     * 查询配送地址详情
     * @param id 配送地址id
     * @return 配送地址详情
     */
    AddressVO queryById(Long id);
}
